package com.ruoyi.controller;

import com.ruoyi.dto.dahua.*;
import com.ruoyi.service.IDaHuaService;
import com.ruoyi.vo.dahua.DaHuaResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 大华请求
 */
@CrossOrigin
@RestController
@RequestMapping("/access")
public class DaHuaController {

    @Autowired
    private IDaHuaService daHuaService;

    /**
     * 下级平台注册
     * @param registDto
     */
    @PostMapping("/base/v1.0/regist")
    public DaHuaResponse regist(@RequestBody DaHuaRegistDto registDto) {
        return daHuaService.regist(registDto);
    }

    /**
     * 下级平台获取图片上传方式
     * @param daHuaDto
     */
    @PostMapping("/base/v1.0/uploadmode")
    public DaHuaResponse uploadmode(@RequestBody DaHuaDto daHuaDto) {
        return daHuaService.uploadmode(daHuaDto);
    }

    /**
     * 下级平台取消城市停车平台接入，关闭云使能
     * @param daHuaDto
     */
    @PostMapping("/base/v1.0/cancel")
    public DaHuaResponse cancel(@RequestBody DaHuaDto daHuaDto) {
        return daHuaService.cancel(daHuaDto);
    }

    /**
     * 下级平台获取 WS 连接信息
     * @param daHuaDto
     */
    @PostMapping("/base/v1.0/address")
    public DaHuaResponse address(@RequestBody DaHuaDto daHuaDto) {
        return daHuaService.address(daHuaDto);
    }

    /**
     * 下级平台上报车辆进场
     * @param daHuaCarIEDto
     */
    @PostMapping("/record/v1.0/carin")
    public DaHuaResponse carIn(@RequestBody DaHuaCarIEDto daHuaCarIEDto) {
        return daHuaService.carIn(daHuaCarIEDto);
    }

    /**
     * 下级平台上报车辆出场信息
     * @param daHuaCarIEDto
     */
    @PostMapping("/record/v1.0/carout")
    public DaHuaResponse carOut(@RequestBody DaHuaCarIEDto daHuaCarIEDto) {
        return daHuaService.carOut(daHuaCarIEDto);
    }

    /**
     * 下级平台上报收费记录同步
     * @param daHuaChargeDto
     */
    @PostMapping("/record/v1.0/charge")
    public DaHuaResponse chargeRecord(@RequestBody DaHuaChargeDto daHuaChargeDto) {
        return daHuaService.chargeRecord(daHuaChargeDto);
    }

    /**
     * 下级平台上报车道信息同步
     * @param daHuaSyncLaneDto
     */
    @PostMapping("/lane/v1.0/sync")
    public DaHuaResponse sync(@RequestBody DaHuaSyncLaneDto daHuaSyncLaneDto) {
        return daHuaService.sync(daHuaSyncLaneDto);
    }

    /**
     * 上报场区余位信息
     * @param daHuaLotReportDto
     */
    @PostMapping("/parkinglot/v1.0/lotReport")
    public DaHuaResponse lotReport(@RequestBody DaHuaLotReportDto daHuaLotReportDto) {
        return daHuaService.lotReport(daHuaLotReportDto);
    }

}
